package com.aiiter.house.domain.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 租赁房产实体类，包含房产信息和租赁相关信息。
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RentalProperty {

    /**
     * 房主的ID。
     */
    private String ownerId;

    /**
     * 房产的ID。
     */
    private Long propertyId;

    /**
     * 房产的名称。
     */
    private String propertyName;

    /**
     * 房产的类型（如公寓、别墅等）。
     */
    private String propertyType;

    /**
     * 房间的号码。
     */
    private String roomNumber;

    /**
     * 房间的类型（如卧室、客厅等）。
     */
    private String roomType;

    /**
     * 房产的详细地址。
     */
    private String propertyAddress;

    /**
     * 房租金额。
     */
    private BigDecimal rent;

    /**
     * 押金金额。
     */
    private BigDecimal deposit;

    /**
     * 房租收租的周期（如每月、每季度等）。
     */
    private String rentCollectionCycle;

    /**
     * 水电费收租的周期。
     */
    private String utilityFeeCollectionCycle;

    /**
     * 出租的类型（如整租、合租等）。
     */
    private String rentalType;

    /**
     * 租期（如一年、两年等）。
     */
    private String leaseTerm;

    /**
     * 租赁起始日期。
     */
    private Date startDate;

    /**
     * 租赁结束日期。
     */
    private Date endDate;

    /**
     * 房主的姓名。
     */
    private String ownerName;

    /**
     * 房主的身份证号。
     */
    private String ownerIdCardNumber;

    /**
     * 租户的姓名。
     */
    private String tenantName;

    /**
     * 租户的身份证号。
     */
    private String tenantIdCardNumber;

    // Lombok的@Data注解会自动生成构造方法、getter、setter、equals、hashCode和toString方法
}
